const { request } = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    banners: [],
    blogCates: [],
    // 首页推荐文章列表
    blogArts: [],
    page: 1,
    pageSize: 10,
    // 上拉加载的锁  是否正在请求下一页数据
    isLoading: false,
    // 上拉加载是否是否已经没有数据
    isFinished: false
  },
  enterDetail(e){
    const { id } = e.currentTarget.dataset;
    // 跳转到详情并传参数
    wx.navigateTo({
      url: '/pages/detail/detail?id='+id
    })
  },
  fetchBanners(){
    // 请求首页商品列表
    request('/banner/list', {
      data: {
        type: 'blog'
      }
    }).then(res=> {
      if(res.data.code=== 0) {
        this.setData({
          banners: res.data.data
        })
      }
    })
  },
  fetchCates(){
    request('/cms/category/list').then(res => {
      if(res.data.code === 0) {
        this.setData({
          blogCates: res.data.data
        })
      }
    })
  },
  fetctArts(){
    // 变成加载中的状态
    this.setData({
      isLoading: true
    })
    request('/cms/news/list/v2', {
      method: 'POST',
      data: {
        page: this.data.page,
        pageSize: this.data.pageSize
      }
    }).then(res => {
      // 数据请求成功。loading状态结束
      this.setData({
        isLoading: false
      })
      // 结束下拉刷新状态
      wx.stopPullDownRefresh()
      if(res.data.code === 0) {
        this.setData({
          blogArts: [
            ...this.data.blogArts,
            ...res.data.data.result
          ]
        })
      }
      if(res.data.code === 700) {
        this.setData({
          isFinished: true
        })
      }
    })
  },
  onLoad(options) {
    this.fetchBanners();
    this.fetchCates();
    this.fetctArts();
  },
  onReachBottom(){
    // 上拉触底
    // 判断是否正在处于请求过程中
    if(this.data.isLoading || this.data.isFinished) {
      return false;
    }
    // 页面+1 请求下一页数据
    this.setData({
      page: this.data.page+1
    })
    this.fetctArts();
  },
  onPullDownRefresh(){
    // 下拉刷新触发
    // 重新请求数据 从第一页开始
    this.setData({
      page: 1,
      blogArts: [],
      isFinished: false
    })
    this.fetctArts();
  }
})